package cn.tedu.weibo.pojo.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 发布微博的DTO类
 */
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class WeiboDTO {

    //我们在WeiboDTO里面可以增加减少参数,我们的控制器的方法的入参不会跟着变化
    //体会封装的概念 //tag做测试
    //对象类型
    //@NotNull(message = "微博标签不能为空,只做测试! 使用NotNull验证")

    // 使用字符串1  空 什么都没有 2  null 3 “   ” 搞不定
    //@NotEmpty(message = "微博标签不能为空，使用NotEmpty验证")

    //支持3种 1 "    "，2 null 3 “”
    @NotBlank(message = "微博标签不能为空，使用NotBlank验证")
    @Size(min = 2,max = 6,message = "标签长度在2-6之间！")
    @ApiModelProperty(value = "微博标签",required = true,example = "热点新闻" )
    String tag;


    //微博内容
    @NotNull(message = "微博内容不能为空!")
    @ApiModelProperty(value = "微博内容",required = true,example = "这是一篇很火的微博" )
    String content;

    /**
     * age做测试 18-100/120 2000 范围
     */
    @Range(min = 18,max = 100,message = "请输入合法的年龄!")
    @ApiModelProperty(value = "年龄",required = true,example = "20" )
    Integer age;

    //新增一个用户id属性
    private Long userId;
    private String imgUrls;

}